Robotic devices are being used with increasing frequency for jobs that require surface coverage. A robotic device may be used, for instance, for wiping windows, cutting grass, mopping floors, vacuuming floors, painting surfaces, etc. In all of these applications, the problem of surface coverage may be solved in different ways. In some cases, a boustrophedon pattern or other planned pattern is used. However, a preplanned path may not be very effective in dynamic environments or suitable for all different types of environments, for example, ones with many obstacles throughout the surface to be covered. A boustrophedon pattern could result in a robotic device performing an excessive number of rotations to turn around at the end of each stroke due to a high number of obstacles in an area. It may be preferable to use coverage schemes that minimize the number of rotations or turns that a robotic device makes because turning may take longer than driving forward and may thus then lengthen the amount of time needed to complete a job. Reducing the number of turns may also save energy. It may also be preferable to avoid retracing already covered surfaces so that time is not wasted covering area that has already been treated or worked on.
A need exists for a surface coverage scheme that more effectively deals with the above presented problems.